lexer grammar Analex;

options {
  language = Java;
  k = 7;
}


@header {

  package practicaspl.cinco;
} 



 INT : 'int ';
 VOID : 'void';
 RETURN : 'return';
 fragment IF : 'if';
 fragment WHILE : 'while';
 fragment FOR : 'for';
 CHAR : 'char';
 fragment ELSE : 'else';
  
 fragment NUEVA_LINEA: '\r\n' ;
 BLANCO: (' '|'\t'|NUEVA_LINEA) {skip();};
 fragment DIGITO: '0'..'9';
 fragment LETRA : ('a'..'z')|('A'..'Z')|'_';
 SEPARADOR : '%';
 SEPABLOQUE : '%%';
 RANGODIG : DIGITO '-' DIGITO (DIGITO '-' DIGITO )?;
 RANGOLETRA : LETRA '-' LETRA ( LETRA '-' LETRA)?;
 COMENTARIO : '/*' (options {greedy=false;}:.)* '*/'{$channel=HIDDEN;};
 IDENT: LETRA(LETRA|DIGITO)*;
 BLOQUE: '%{'| '%}';
 COLON : ':';
 SEMICOLON : ';';
 INC : '++';
 DEC : '--';
 LLAVEA : '{';
 LLAVEC : '}';
 PARENTA : '(';
 PARENTC : ')';
 BARRA: '|';
 CORCHETEA : '[';
 CORCHETEC : ']';
 MENOS : '-';
 COMA: ',';
 AST : '*';
 //TIPO : (INT|VOID|CHAR);
 MAS : '+';
 IGUAL : '=';
 STRING : '"' (.)* '"';
 NUMERO : (DIGITO)*;